/**
 * 
 */
package systole.persistence.brokersInterface;

import java.util.List;

import systole.domain.clinicalInformation.Pathology;
import systole.domain.clinicalInformation.PathologyPatient;
import systole.domain.persons.Patient;
import systole.exceptions.ExceptionDAO;

/**
 * @author jmj
 *
 */
public interface PathologyByPatientBroker {
	
	 /**
     * @param pathologyPatient 
     * @throws ExceptionDAO
     */
    public void insert(PathologyPatient pathologyPatient) throws ExceptionDAO;

    /**
     * @param pathologyPatient 
     * @throws ExceptionDAO
     */
    public void update(PathologyPatient pathologyPatient) throws ExceptionDAO;
    
    /**
     * @param pathologyPatient
     * @throws ExceptionDAO
     */
    public void delete(PathologyPatient pathologyPatient) throws ExceptionDAO;

    /**
     * @param patient 
     * @return all patient pathologies
     * @throws ExceptionDAO
     */
    public List<PathologyPatient> getAllPatientPathologies(Patient patient) throws ExceptionDAO;

    /**
     *
     * @param pathology 
     * @param patient 
     * @return if patient pathology exist
     * @throws ExceptionDAO
     */
    public boolean existPathologyByPatient(Pathology pathology, Patient patient) throws ExceptionDAO;

}
